package com.itheima.controller;

import com.itheima.common.entity.PageResult;
import com.itheima.common.entity.QueryPageBean;
import com.itheima.common.entity.Result;
import com.itheima.pojo.OrderVO;
import com.itheima.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 订单控制器类，负责处理与订单相关的HTTP请求。
 */
@RestController
@Slf4j
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private OrderService orderService;

    /**
     * 分页查询订单信息。
     *
     * @param queryPageBean 包含分页查询条件的对象，包括当前页码、每页大小和查询字符串。
     * @return 返回分页查询结果，包含订单列表和分页信息。
     */
    @PostMapping("/findPage")
    public PageResult findPage(@RequestBody QueryPageBean queryPageBean) {
        log.info("分页查询:{},{},{}", queryPageBean.getCurrentPage(), queryPageBean.getPageSize(), queryPageBean.getQueryString());
        return orderService.findPage(queryPageBean);
    }

    /**
     * 更新订单信息。
     *
     * @param orderVO 包含订单更新信息的对象。
     * @return 返回操作结果，成功或失败的信息。
     */
    @PostMapping("/update")
    public Result update(@RequestBody OrderVO orderVO) {
        if (orderVO == null) {
            return new Result(false, "传入数据为空");
        }
        log.info("修改订单:{}", orderVO);
        try {
            orderService.update(orderVO);
            return new Result(true, "修改预约状态成功");

        } catch (Exception e) {
            log.error("修改预约状态失败: {}", e.getMessage(), e);
            throw new RuntimeException("修改预约状态失败，请稍后重试");
        }
    }

}

